from typing import Any, Optional, List, Dict, Tuple, Set, Union

"""黄土相关计算"""

result_coll_site_type: Any
res_class: Any

def recent_depos_loess_justify(e: float, a: float, gamma: float, omega: float) -> tuple[float, bool, str]:
    """
    新近堆积黄土计算判别
    
    参数：
    
    e (float): 土的孔隙比（该层的孔隙比平均值） [-]
    
    a (float): 压缩系数（取50-150kPa或0-100kPa压力下的较大值） [MPa^-1] = [m^2/(10^6*N)]
    
    gamma (float): 土的重度（该层重度的平均值） [kN/m^3]
    
    omega (float): 土的天然含水量（该层含水量的平均值） [%]
    
    返回：
    
    (float): R的值
    
    (bool): 是否为新近堆积黄土（新近堆积黄土R>R0）
    
    (str): 判别结果的文字，"是新近堆积黄土"或"非新近堆积黄土"
    """
    ...
def get_beta0(area_id: int) -> float:
    """
    因地区土质而异的修正系数
    
    （I-陇西地区1.5，II-陇东、陕北、晋西地区1.2，III-关中地区0.9，其它地区0.5）
    
    参数：
    
    area_id (int): 湿陷性黄土工程地质分区，1、2、3分别对应I、II、III区，4对应其它地区 [-]
    
    返回：
    
    (float): 因地区土质而异的修正系数beta0 [-]
    """
    ...
def delta_zs_calc(n: int, h: list[float], beta0: float, dt_zs: list[float]) -> tuple[Any, float]:
    """
    自重湿陷量计算
    
    参数：
    
    n (int): 土样数量 [-]
    
    h (list[float]): 第i个样品所代表的土层厚度 [mm]
    
    beta0 (float): 因地区土质而异的修正系数 [-]
    
    dt_zs (list[float]): 第i个土样的自重湿陷系数（试验值） [-]
    
    返回：
    
    (list[float]): 各层的自重湿陷量计算值 [mm]
    
    (float): 总的自重湿陷量计算值 [mm]
    """
    ...
def coll_site_type_justify(delta_zs: float) -> tuple[bool, str]:
    """
    湿陷场地类型判定
    
    参数：
    
    delta_zs (float): 自重湿陷量计算值 [mm]
    
    返回：
    
    (bool): True为自重湿陷性场地（即delta_zs>70mm）
    
    (str): 结论的文字描述，"自重湿陷性"或"非自重湿陷性"
    """
    ...
def get_alpha_beta(area_id: int, is_gravity_coll: bool, depth_from_fbot: float) -> tuple[float, float]:
    """
    浸水机率系数alpha和修正系数beta
    
    参数：
    
    area_id (int): 湿陷性黄土工程地质分区，1、2、3分别对应I、II、III区，4对应其它地区 [-]
    
    is_gravity_coll (bool): 是否自重湿陷性
    
    depth_from_fbot (float): 样品点在基底以下的深度（没有基础取地表下1.5m为起算深度） [m]
    
    返回：
    
    (float): 浸水机率系数alpha [-]
    
    (float): 修正系数beta [-]
    """
    ...
def delta_s_calc(n: int, h: list[float], alpha: list[float], beta: list[float], dt_s: list[float]) -> tuple[Any, float]:
    """
    受水浸湿饱和，湿陷量计算
    
    参数：
    
    n (int): 土样数量 [-]
    
    h (list[float]): 第i个样品所代表的土层厚度 [mm]
    
    alpha (list[float]): 不同深度样品的地基土浸水机率系数，按表取值 [-]
    
    beta (list[float]): 不同深度样品考虑基底下地基土受水浸湿可能性和侧向挤出等因素的修正系数，按表取值 [-]
    
    dt_s (list[float]): 第i个土样的湿陷系数（试验值） [-]
    
    返回：
    
    (list[float]): 各层的湿陷量计算值 [mm]
    
    (float): 总的湿陷量计算值 [mm]
    """
    ...
def coll_class_justify(is_gravity_coll: bool, delta_zs: float, delta_s: float) -> str:
    """
    湿陷等级判定
    
    参数：
    
    is_gravity_coll (bool): 是否自重湿陷性场地 [-]
    
    delta_zs (float): 自重湿陷量计算值 [mm]
    
    delta_s (float): 湿陷量计算值 [mm]
    
    返回：
    
    (str): 湿陷等级
    """
    ...
